The present invention relates to a semiconductor memory device, and more particularly, to a semiconductor memory device with safe bootloading and bootloading method.
Semiconductor memory devices may be classified into volatile memory devices, such as the dynamic random access memory (DRAM) and static random access memory (SRAM), and non-volatile memory devices, such as the programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and ferroelectric random access memory (FRAM). Volatile memory devices lose stored data when power is interrupted, but non-volatile memory devices retain stored data under such conditions.
Non-volatile memory devices, and especially flash memory, are extensively used in a variety of applications. In addition to the non-volatile nature of their data storage capabilities, flash memory also offers such performance advantages as fast programming speed and low power consumption. As a result, flash memory is commonly used in (e.g.,) computer systems to store basic input/output system (BIOS) information and related boot code.
That is, flash memory typically includes a so-called boot block (i.e., a defined block of memory) storing such information as BIOS code data, boot code, associated password(s), etc., (hereafter, collectively or individually referred to as “boot information”). Hence, the boot block is a region first accessed by a host upon flash memory (or memory system) power-up. Erase and program operations are more frequently applied to the boot block than other memory blocks storing ordinary data in the flash memory.
Thus, soon after a power supply voltage Vcc is applied, the host accesses the boot information necessary for system initialization. However, bringing up (generating power supply voltage Vcc through it full swing) and applying power supply voltage Vcc within the system may take as long as hundreds of μseconds. Accordingly, the boot information may be read from flash memory as the power supply voltage Vcc is being brought up, and therefore below a minimum operating threshold associated with the power supply voltage Vcc. Such an occurrence may result in a boot operation error, since the read operation directed to the boot information is performed at an insufficient voltage. Obviously, a boot operation error will prevent proper system initialization.
To preclude the possibility of a boot operation error, boot information is loaded (i.e., read and transferred) from the flash memory only after a predetermined delay (e.g., about 300 μsec) following system initialization. An oscillator in the flash memory is typically used to generate the clock signal measuring this delay. However, each time the system is initialized, the full swing period associated with bringing up power supply voltage Vcc varies. Thus, even when a predetermined delay is accurately measured by an oscillator (or some similar circuit) resident on the flash memory, the stability of the boot information loading process (hereafter, “bootloading”) can not be assured.